home *** CD-ROM | disk | FTP | other *** search
/ Libris Britannia 4 / science library(b).zip / science library(b) / DJGPP / CBGRX103.ZIP / contrib / libgrx / docs / readme.grx < prev    next >
Text File  |  1993-12-06  |  5KB  |  134 lines

  1. README for GRX 1.03 beta release
  2. ================================
  3.  
  4. This is file README.GRX. It can be found at the beta7 distribution site
  5. and also in the DOCS sub-directory of the GRX archive. This file contains
  6. additional information about the new graphics-related features of GO32,
  7. the new graphics drivers and GRX 1.03.
  8.  
  9. What is in this release?
  10. ------------------------
  11.  
  12. This is an intermediate release based on my working sources. This version
  13. does not yet work with DPMI. On the other hand, it has been modified to work
  14. with the new (.VDR) drivers. These drivers together with the modifications
  15. in GO32 1.11 allow the use of more than 1MB of video RAM. Virtual screens
  16. larger than the displayed screen are also supported, together with a GO32
  17. function to change the start of the displayed region (pan). The beta GO32
  18. 1.11 already has a new format built-in VESA driver.
  19.  
  20. This version only supports display modes which were present in GRX 1.02.
  21. (I.e. 16, 256, 32K colors and accelerated S3/8514A 256 color modes.) I don't
  22. intend to finish the missing display modes in the current page-fault based
  23. video RAM access mode. Currently I am working on a new set of low-level GRX
  24. video RAM access routines which will use explicit paging. These will support
  25. DPMI graphics with >64K frame buffers. As soon as these are finished and
  26. tested there will be another GRX release.
  27.  
  28. The other new feature of this release is that all thick and patterned
  29. line primitives (which were missing from GRX 1.02) are present in this
  30. version.
  31.  
  32. New driver interface
  33. --------------------
  34.  
  35. The format of the VDR drivers can be found in the "grdriver.h" file in
  36. the GO32 source directory or in the NDRIVERS directory of the GRX archive.
  37. The built-in driver in GO32 should work with any VESA compatible SVGA card.
  38. Older (.GRD or .GRN) drivers still work with the new GO32 and graphics
  39. library. There is a small change in the driver specification part of the
  40. GO32 environment variable:
  41.  
  42.        SET GO32=driver <driver_name>::<driver_options> tw ...
  43.                     ^^^^^^^^^^^^^^^^^^
  44.                       new fields
  45.  
  46. If the name of the driver is followed by two colons and a string then this
  47. string is taken as an option string for the driver. GO32 configures the driver
  48. according to the characters in this string when the driver is loaded. (Which
  49. now happens only when the driver is first used.) The option string is
  50. ignored for .GRD and .GRD drivers.
  51.  
  52. The option string can contain the following characters (in any order, case
  53. does not matter):
  54.  
  55.   p:    Enables protected mode paging. For .VDR drivers the default is to use
  56.     the driver's paging function in real mode. This is necessary because
  57.     the VESA BIOS paging function was written for real mode. However, many
  58.     VESA BIOS-es are well written, and their paging function can be used
  59.     in protected mode. Give it a try, if it fails then you have to use
  60.     real mode paging which is MUCH slower. (paging with .GRD and .GRN
  61.     drivers is always in protected mode)
  62.  
  63.   f:    Enables fast 256 color mode. On some SVGA cards the planar, mode X-like
  64.     256 color memory organization can be used even in SVGA modes. There are
  65.     a few operations (especially horizontal scan line fills) which can
  66.     be much faster in this mode. Give it a try -- and if you see garbage
  67.     on the screen then it does not work with your card.
  68.  
  69.   5:    This field is necessary only if your VESA BIOS is version 1.1 or older
  70.     and the 64K (16 bit) color mode reported by it is really only a 32K
  71.     (15 bit) mode. You can find out your VESA version number and a lot of
  72.     other VESA related stuff by running the VESAINFO program in the
  73.     NDRIVERS directory of the GRX archive.
  74.  
  75. If you want to use the built-in GO32 driver with options use the following
  76. syntax:
  77.  
  78.     SET GO32 = driver ::pf5 tw ...
  79.  
  80. When using a new .VDR driver with GO32 1.11 the video memory is mapped as
  81. follows:
  82.  
  83.     0xd0000000 .. 0xd0100000    old 1MB RW area
  84.     0xd0100000 .. 0xd0200000    old 1MB R0 area
  85.     0xd0200000 .. 0xd0300000    old 1MB W0 area
  86.  
  87.     0xd1000000 .. 0xd2000000    new 16MB RW area
  88.     0xd2000000 .. 0xd3000000    new 16MB R0 area
  89.     0xd3000000 .. 0xd4000000    new 16MB W0 area
  90.  
  91. GRX 1.03 uses the 1MB areas whenever the frame buffer is less then 1MB,
  92. otherwise it uses the 16MB areas.
  93.  
  94. GO32 1.11 supports the following new int 0x10 calls:
  95.  
  96. Mode set with virtual screen sizes:
  97.  Input:
  98.    ax = 10           // = GR_custom_graphics
  99.    bx = colors
  100.    cx = desired screen width
  101.    dx = desired screen height
  102.    VDR_driver_header.virtual_x = desired virtual width
  103.    VDR_driver_header.virtual_y = desired virtual heigth
  104.  Output:
  105.    bx = mode descriptor bits
  106.    cx = actual screen width
  107.    dx = actual screen height
  108.    VDR_driver_header.virtual_x = actual virtual width
  109.    VDR_driver_header.virtual_y = actual virtual heigth
  110.  
  111. Inquire driver header linear address:
  112.  Input:
  113.    ax = 0xfffe
  114.  Output:
  115.    eax = linear address of driver header in real memory. (Add 0xe0000000
  116.      when used in non-DPMI modes of the extender). Use this buffer
  117.      for passing the virtual screen parameters to the driver.
  118.  
  119. Call driver paging function in real mode:
  120.  Input:
  121.    ax = 0xfffd
  122.    bl = read page
  123.    bh = write page
  124.  Output: none
  125.  
  126. Set displayed screen start when virtual screen > displayed screen
  127.  Input:
  128.    ax = 0xfffc
  129.    cx = X position
  130.    dx = Y position
  131.  Output: none
  132.  
  133.  
  134.